From 8c8383a53deae8be961ee76fdd2a5e2c38ba693a Mon Sep 17 00:00:00 2001 From: Reedy Date: Thu, 15 Oct 2015 17:53:14 +0100 Subject: [PATCH] Remove unused ApiQueryORM Bug: T114538 Change-Id: I4673977cef336ab3b4e375a3deab4d4fc67830eb --- RELEASE-NOTES-1.27 | 1 + autoload.php | 1 - includes/api/ApiQueryORM.php | 268 ----------------------------------- includes/api/i18n/en.json | 3 - includes/api/i18n/qqq.json | 2 - 5 files changed, 1 insertion(+), 274 deletions(-) delete mode 100644 includes/api/ApiQueryORM.php diff --git a/RELEASE-NOTES-1.27 b/RELEASE-NOTES-1.27 index b34b3c0171..835d38a316 100644 --- a/RELEASE-NOTES-1.27 +++ b/RELEASE-NOTES-1.27 @@ -76,6 +76,7 @@ production. "was-deleted" warning. === Action API internal changes in 1.27 === +* ApiQueryORM removed. === Languages updated in 1.27 === diff --git a/autoload.php b/autoload.php index 673072b2a7..b35b683214 100644 --- a/autoload.php +++ b/autoload.php @@ -103,7 +103,6 @@ $wgAutoloadLocalClasses = array( 'ApiQueryLangLinks' => __DIR__ . '/includes/api/ApiQueryLangLinks.php', 'ApiQueryLinks' => __DIR__ . '/includes/api/ApiQueryLinks.php', 'ApiQueryLogEvents' => __DIR__ . '/includes/api/ApiQueryLogEvents.php', - 'ApiQueryORM' => __DIR__ . '/includes/api/ApiQueryORM.php', 'ApiQueryPagePropNames' => __DIR__ . '/includes/api/ApiQueryPagePropNames.php', 'ApiQueryPageProps' => __DIR__ . '/includes/api/ApiQueryPageProps.php', 'ApiQueryPagesWithProp' => __DIR__ . '/includes/api/ApiQueryPagesWithProp.php', diff --git a/includes/api/ApiQueryORM.php b/includes/api/ApiQueryORM.php deleted file mode 100644 index dc10c91cbe..0000000000 --- a/includes/api/ApiQueryORM.php +++ /dev/null @@ -1,268 +0,0 @@ - - */ -abstract class ApiQueryORM extends ApiQueryBase { - - /** - * Returns an instance of the IORMTable table being queried. - * - * @since 1.21 - * - * @return IORMTable - */ - abstract protected function getTable(); - - /** - * Returns the name of the individual rows. - * For example: page, user, contest, campaign, etc. - * This is used to appropriately name elements in XML. - * Deriving classes typically override this method. - * - * @since 1.21 - * - * @return string - */ - protected function getRowName() { - return 'item'; - } - - /** - * Returns the name of the list of rows. - * For example: pages, users, contests, campaigns, etc. - * This is used to appropriately name nodes in the output. - * Deriving classes typically override this method. - * - * @since 1.21 - * - * @return string - */ - protected function getListName() { - return 'items'; - } - - /** - * Returns the path to where the items results should be added in the result. - * - * @since 1.21 - * - * @return null|string|array - */ - protected function getResultPath() { - return null; - } - - /** - * Get the parameters, find out what the conditions for the query are, - * run it, and add the results. - * - * @since 1.21 - */ - public function execute() { - $params = $this->getParams(); - - if ( !in_array( 'id', $params['props'] ) ) { - $params['props'][] = 'id'; - } - - $results = $this->getResults( $params, $this->getConditions( $params ) ); - $this->addResults( $params, $results ); - } - - /** - * Get the request parameters and remove all params set - * to null (ie those that are not actually provided). - * - * @since 1.21 - * - * @return array - */ - protected function getParams() { - return array_filter( - $this->extractRequestParams(), - function ( $prop ) { - return isset( $prop ); - } - ); - } - - /** - * Get the conditions for the query. These will be provided as - * regular parameters, together with limit, props, continue, - * and possibly others which we need to get rid off. - * - * @since 1.21 - * - * @param array $params - * - * @return array - */ - protected function getConditions( array $params ) { - $conditions = array(); - $fields = $this->getTable()->getFields(); - - foreach ( $params as $name => $value ) { - if ( array_key_exists( $name, $fields ) ) { - $conditions[$name] = $value; - } - } - - return $conditions; - } - - /** - * Get the actual results. - * - * @since 1.21 - * - * @param array $params - * @param array $conditions - * - * @return ORMResult - */ - protected function getResults( array $params, array $conditions ) { - return $this->getTable()->select( - $params['props'], - $conditions, - array( - 'LIMIT' => $params['limit'] + 1, - 'ORDER BY' => $this->getTable()->getPrefixedField( 'id' ) . ' ASC', - ), - __METHOD__ - ); - } - - /** - * Serialize the results and add them to the result object. - * - * @since 1.21 - * - * @param array $params - * @param ORMResult $results - */ - protected function addResults( array $params, ORMResult $results ) { - $serializedResults = array(); - $count = 0; - - foreach ( $results as /* IORMRow */ $result ) { - if ( ++$count > $params['limit'] ) { - // We've reached the one extra which shows that - // there are additional pages to be had. Stop here... - $this->setContinueEnumParameter( 'continue', $result->getId() ); - break; - } - - $serializedResults[] = $this->formatRow( $result, $params ); - } - - $this->setIndexedTagNames( $serializedResults ); - $this->addSerializedResults( $serializedResults ); - } - - /** - * Formats a row to it's desired output format. - * - * @since 1.21 - * - * @param IORMRow $result - * @param array $params - * - * @return mixed - */ - protected function formatRow( IORMRow $result, array $params ) { - return $result->toArray( $params['props'] ); - } - - /** - * Set the tag names for formats such as XML. - * - * @since 1.21 - * - * @param array $serializedResults - */ - protected function setIndexedTagNames( array &$serializedResults ) { - ApiResult::setIndexedTagName( $serializedResults, $this->getRowName() ); - } - - /** - * Add the serialized results to the result object. - * - * @since 1.21 - * - * @param array $serializedResults - */ - protected function addSerializedResults( array $serializedResults ) { - $this->getResult()->addValue( - $this->getResultPath(), - $this->getListName(), - $serializedResults - ); - } - - /** - * @see ApiBase::getAllowedParams() - * @return array - */ - public function getAllowedParams() { - $params = array( - 'props' => array( - ApiBase::PARAM_TYPE => $this->getTable()->getFieldNames(), - ApiBase::PARAM_ISMULTI => true, - ApiBase::PARAM_REQUIRED => true, - ApiBase::PARAM_HELP_MSG => 'api-orm-param-props', - ), - 'limit' => array( - ApiBase::PARAM_DFLT => 20, - ApiBase::PARAM_TYPE => 'limit', - ApiBase::PARAM_MIN => 1, - ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1, - ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2, - ApiBase::PARAM_HELP_MSG => 'api-orm-param-limit', - ), - 'continue' => array( - ApiBase::PARAM_HELP_MSG => 'api-help-param-continue', - ), - ); - - return array_merge( $this->getTable()->getAPIParams(), $params ); - } - - /** - * @see ApiBase::getParamDescription() - * @deprecated since 1.25 - * @return array - */ - public function getParamDescription() { - $descriptions = array( - 'props' => 'Fields to query', - 'continue' => 'Offset number from where to continue the query', - 'limit' => 'Max amount of rows to return', - ); - - return array_merge( $this->getTable()->getFieldDescriptions(), $descriptions ); - } -} diff --git a/includes/api/i18n/en.json b/includes/api/i18n/en.json index 11c59f0173..7358bfca74 100644 --- a/includes/api/i18n/en.json +++ b/includes/api/i18n/en.json @@ -1374,9 +1374,6 @@ "api-format-prettyprint-header": "This is the HTML representation of the $1 format. HTML is good for debugging, but is unsuitable for application use.\n\nSpecify the format parameter to change the output format. To see the non-HTML representation of the $1 format, set format=$2.\n\nSee the [[mw:API|complete documentation]], or the [[Special:ApiHelp/main|API help]] for more information.", "api-format-prettyprint-header-only-html": "This is an HTML representation intended for debugging, and is unsuitable for application use.\n\nSee the [[mw:API|complete documentation]], or the [[Special:ApiHelp/main|API help]] for more information.", - "api-orm-param-props": "Fields to query.", - "api-orm-param-limit": "Max amount of rows to return.", - "api-pageset-param-titles": "A list of titles to work on.", "api-pageset-param-pageids": "A list of page IDs to work on.", "api-pageset-param-revids": "A list of revision IDs to work on.", diff --git a/includes/api/i18n/qqq.json b/includes/api/i18n/qqq.json index 9710e16367..125a15584b 100644 --- a/includes/api/i18n/qqq.json +++ b/includes/api/i18n/qqq.json @@ -1277,8 +1277,6 @@ "api-format-title": "{{technical}}\nPage title when API output is pretty-printed in HTML.", "api-format-prettyprint-header": "{{technical}} Displayed as a header when API output is pretty-printed in HTML.\n\nParameters:\n* $1 - Format name\n* $2 - Non-pretty-printing module name", "api-format-prettyprint-header-only-html": "{{technical}} Displayed as a header when API output is pretty-printed in HTML, but there is no non-html module.\n\nParameters:\n* $1 - Format name", - "api-orm-param-props": "{{doc-apihelp-param|orm|props|description=the \"props\" parameter in subclasses of ApiQueryORM}}", - "api-orm-param-limit": "{{doc-apihelp-param|orm|limit|description=the \"limit\" parameter in subclasses of ApiQueryORM}}", "api-pageset-param-titles": "{{doc-apihelp-param|pageset|titles|description=the \"titles\" parameter in pageset-using modules}}", "api-pageset-param-pageids": "{{doc-apihelp-param|pageset|pageids|description=the \"pageids\" parameter in pageset-using modules}}", "api-pageset-param-revids": "{{doc-apihelp-param|pageset|revids|description=the \"revids\" parameter in pageset-using modules}}", -- 2.20.1